package com.example.medical.service.impl;

import com.example.medical.domain.User;
import com.example.medical.mapper.UserMapper;
import com.example.medical.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;


@Service
public class UserServiceImpl  implements UserService {
    @Autowired
    UserMapper mapper;
    @Override
    public List<User> selectAll() {
        return mapper.selectAll();
    }
    @Override
    public User selectById(int id) {
        return mapper.selectById(id);
    }
    @Override
    public int SaveUser(User user) {
        //注意这里没写太全，大家可以自行完善，完善点的可以是
        //1 先保证用户名不存在，防止重名出现
        //2 给password字段做加密存储，简单的就是用md5
        //3 注意如果这里加密了，在下面的登录方法里一样需要加密，否则数据库验证永远失败
        return mapper.SaveUser(user);
    }
    @Override
    public int UpdateUser(User user) {
        //这个方法可以扩展，如果你把它认为成管理员修改密码那这个方法目前没有问题
        //但是如果是用户自己想修改密码呢，整个方法的参数就变了，需要有旧密码作为参数传递过来，先验证旧密码是否正确才能修改
        //如果忘了旧密码怎么办？ 通常还得有个重置密码的方法，那么在注册的时候，就可以加保密问题或者邮箱之类的，如果能够正确验证保密问题或者邮箱，才可以重置
        return mapper.UpdateUser(user);
    }
    @Override
    public int DeleteUser(int id) {
        return mapper.DeleteUser(id);
    }
    @Override
    public String checkUser(User user) {
        int res = mapper.checkUser(user);
        if (res == 1) {
            return "登录成功";
        } else {
            return "用户名或密码错误";
        }
    }
}

